/*
 * Decompiled with CFR 0.150.
 * 
 * Could not load the following classes:
 *  cn.hutool.core.collection.CollUtil
 *  cn.hutool.core.util.ObjectUtil
 *  com.alibaba.fastjson.JSON
 *  de.felixroske.jfxsupport.FXMLController
 *  javafx.beans.value.ChangeListener
 *  javafx.beans.value.ObservableValue
 *  javafx.collections.FXCollections
 *  javafx.collections.ObservableList
 *  javafx.event.ActionEvent
 *  javafx.event.EventHandler
 *  javafx.fxml.FXML
 *  javafx.fxml.Initializable
 *  javafx.scene.Node
 *  javafx.scene.control.Alert
 *  javafx.scene.control.Alert$AlertType
 *  javafx.scene.control.Button
 *  javafx.scene.control.CheckBox
 *  javafx.scene.control.ScrollPane
 *  javafx.scene.control.TableCell
 *  javafx.scene.control.TableColumn
 *  javafx.scene.control.TableView
 *  javafx.scene.control.TextField
 *  javafx.scene.control.cell.PropertyValueFactory
 *  javafx.scene.control.cell.TextFieldTableCell
 *  javafx.scene.input.KeyCode
 *  javafx.scene.input.KeyEvent
 *  javafx.scene.layout.VBox
 *  javafx.scene.text.Text
 *  javafx.stage.Modality
 *  javafx.util.Callback
 *  org.slf4j.Logger
 *  org.slf4j.LoggerFactory
 *  org.springframework.beans.BeanUtils
 *  org.springframework.beans.factory.annotation.Autowired
 *  org.springframework.util.CollectionUtils
 */
package com.gys.controller.baseSetting.saleSchedule;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.gys.GysApplication;
import com.gys.common.business.ShopSortSettingUtil;
import com.gys.common.data.HttpJson;
import com.gys.common.exception.BusinessException;
import com.gys.common.plugIn.searchTextField.SearchTextField;
import com.gys.common.util.CacheUtil;
import com.gys.common.util.CommonUtil;
import com.gys.controller.BaseController;
import com.gys.controller.baseSetting.saleSchedule.AddShopSortController;
import com.gys.controller.dataManger.ControllerManger;
import com.gys.controller.index.IndexController;
import com.gys.data.example.GetBcEditStoreData;
import com.gys.data.example.GetBcStoreData;
import com.gys.data.example.GetLoginStoreOutData;
import com.gys.data.example.GetUserOutData;
import com.gys.data.shopSortSetting.GetShopDetailOutData;
import com.gys.data.shopSortSetting.GetShopInData;
import com.gys.data.shopSortSetting.GetShopSortOutData;
import com.gys.data.shopSortSetting.importShopExcelInData;
import com.gys.view.shopSort.AddShopSortView;
import de.felixroske.jfxsupport.FXMLController;
import java.io.File;
import java.lang.reflect.Method;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.ResourceBundle;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.Node;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TableCell;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.control.cell.TextFieldTableCell;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
import javafx.stage.Modality;
import javafx.util.Callback;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;

@FXMLController
public class ShopSortSettingController
extends BaseController
implements Initializable {
    private static final Logger log = LoggerFactory.getLogger(ShopSortSettingController.class);
    @FXML
    private ScrollPane scrollPane;
    @FXML
    private VBox vBox;
    @FXML
    private TableColumn<GetShopSortOutData, String> gssgNameSort;
    @FXML
    private TableView<GetShopSortOutData> sortInfo;
    @FXML
    private TableView<GetShopDetailOutData> detailInfo;
    @FXML
    private TableColumn<GetShopSortOutData, String> gssgUpdateEmp;
    @FXML
    private TableColumn<GetShopDetailOutData, String> indexDetail;
    @FXML
    private TextField gssgNameParam;
    @FXML
    private TableColumn<GetShopSortOutData, String> indexSort;
    @FXML
    private Button exportFileBtn;
    @FXML
    private Button addBtn;
    @FXML
    private Button editeBtn;
    @FXML
    private Button sureBtn;
    @FXML
    private TableColumn<GetShopSortOutData, CheckBox> checkBoxSort;
    @FXML
    private Button importFileBtn;
    @FXML
    private TableColumn<GetShopSortOutData, String> gssgIdSort;
    @FXML
    private TextField gssgBrNameParam;
    @FXML
    private TableColumn<GetShopDetailOutData, String> gssgBrIdDetail;
    @FXML
    private TableColumn<GetShopDetailOutData, String> gssgIdDetail;
    @FXML
    private TableColumn<GetShopDetailOutData, String> gssgBrNameDetail;
    @Autowired
    private IndexController indexController;
    @Autowired
    private AddShopSortController addShopSortController;
    private ObservableList<GetShopSortOutData> sortObservableTableList = FXCollections.observableArrayList(new ArrayList());
    private ObservableList<GetShopDetailOutData> detailObservableTableList = FXCollections.observableArrayList(new ArrayList());
    List<GetLoginStoreOutData> outData = new ArrayList<GetLoginStoreOutData>();
    Map<String, Object> otherMap = new HashMap<String, Object>();
    List<String> words = new ArrayList<String>();
    public GetShopSortOutData selectShopSort;

    public void initialize(URL location, ResourceBundle resources) {
        this.scrollPane.setPrefWidth(this.getContentWidth());
        this.scrollPane.setPrefHeight(this.getContentHeight());
        this.vBox.setPrefWidth(this.getContentWidth());
        this.vBox.setPrefHeight(this.getContentHeight());
        this.sortInfo.setPrefWidth(this.getContentWidth());
        this.detailInfo.setPrefWidth(this.getContentWidth());
        ControllerManger.controllerMap.put(this.getClass().getSimpleName(), this);
    }

    @Override
    public void init() {
        this.indexController.scrollContentPane.setOnKeyReleased((EventHandler)new EventHandler<KeyEvent>(){

            public void handle(KeyEvent e) {
                if (e.getCode() == KeyCode.DELETE) {
                    ShopSortSettingController.this.delete();
                }
                e.consume();
            }
        });
        HashMap<String, Object> param = new HashMap<String, Object>();
        param.put("clientId", ((GetUserOutData)CacheUtil.get("logInUser")).getClient());
        HttpJson httpJson = ShopSortSettingUtil.queryStore(param);
        if (!httpJson.isSuccess()) {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", httpJson.getMsg());
            alert.showAndWait();
            return;
        }
        this.outData = JSON.parseArray((String)httpJson.getMsg(), GetLoginStoreOutData.class);
        ArrayList<GetBcStoreData> storeData = new ArrayList();
        this.outData.forEach(item -> {
            GetBcStoreData tem = new GetBcStoreData();
            tem.setAddGssgBrId(item.getStoCode());
            tem.setAddGssgBrName(item.getStoName());
            storeData.add(tem);
        });
        this.otherMap.clear();
        this.words.clear();
        storeData.forEach(item -> {
            this.otherMap.put(item.getAddGssgBrId(), item);
            this.words.add(item.getAddGssgBrId());
        });
        this.selectShopSort = null;
        this.changeToText(this.gssgBrIdDetail);
        this.gssgNameParam.clear();
        this.gssgBrNameParam.clear();
        this.initSortTableView();
    }

    public TableView<GetShopSortOutData> initSortTableView() {
        GetShopInData inData = new GetShopInData();
        inData.setClientId(((GetUserOutData)CacheUtil.get("logInUser")).getClient());
        inData.setGssgBrName(CommonUtil.getFuzzyParam(this.gssgBrNameParam.getText()));
        inData.setGssgName(CommonUtil.getFuzzyParam(this.gssgNameParam.getText()));
        List dataList = null;
        HttpJson httpJson = ShopSortSettingUtil.querySort(CommonUtil.convertToMap(inData));
        if (httpJson.isSuccess()) {
            dataList = JSON.parseArray((String)httpJson.getMsg(), GetShopSortOutData.class);
        } else {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", httpJson.getMsg());
            alert.showAndWait();
        }
        this.sortObservableTableList.clear();
        if (ObjectUtil.isNotEmpty(dataList)) {
            this.sortObservableTableList = FXCollections.observableArrayList((Collection)dataList);
        }
        this.indexSort.setCellValueFactory((Callback)new PropertyValueFactory(this.indexSort.getId()));
        this.checkBoxSort.setCellValueFactory(cellData -> ((GetShopSortOutData)cellData.getValue()).getCheckBoxSort().getCustomCheckBox());
        this.initCheckBoxSort();
        this.bingSortTableCell();
        this.initColumCheckBox();
        this.sortInfo.setItems(this.sortObservableTableList);
        this.detailObservableTableList.clear();
        return this.sortInfo;
    }

    private TableView<GetShopDetailOutData> initDetailTableView(List<GetShopDetailOutData> dataList) {
        this.detailObservableTableList.clear();
        this.detailObservableTableList = FXCollections.observableArrayList(dataList);
        this.indexDetail.setCellValueFactory((Callback)new PropertyValueFactory(this.indexDetail.getId()));
        this.bingDetailTableCell();
        this.detailInfo.setItems(this.detailObservableTableList);
        return this.detailInfo;
    }

    private void bingSortTableCell() {
        this.gssgIdSort.setCellValueFactory((Callback)new PropertyValueFactory(this.gssgIdSort.getId()));
        this.gssgNameSort.setCellValueFactory((Callback)new PropertyValueFactory(this.gssgNameSort.getId()));
        this.gssgUpdateEmp.setCellValueFactory((Callback)new PropertyValueFactory(this.gssgUpdateEmp.getId()));
        this.editeTableCell(this.gssgIdSort);
        this.editeTableCell(this.gssgNameSort);
    }

    private void editeTableCell(TableColumn<GetShopSortOutData, String> tableColumn) {
        tableColumn.setCellFactory(TextFieldTableCell.forTableColumn());
        tableColumn.setOnEditCommit(t -> {
            GetShopSortOutData line = (GetShopSortOutData)t.getTableView().getItems().get(t.getTablePosition().getRow());
            String methodName = CommonUtil.getSetMethod(tableColumn.getId());
            try {
                Method method = GetShopSortOutData.class.getMethod(methodName, String.class);
                method.invoke(line, t.getNewValue());
            }
            catch (Exception e) {
                throw new RuntimeException("\u6ca1\u6709\u65b9\u6cd5" + methodName);
            }
        });
        tableColumn.setOnEditStart(t -> {
            GetShopSortOutData line = (GetShopSortOutData)t.getTableView().getItems().get(t.getTablePosition().getRow());
            List<Integer> indexList = this.getSelectIndex();
            if (!indexList.contains(line.getIndexSort())) {
                throw new BusinessException("\u4e0d\u53ef\u7f16\u8f91");
            }
        });
    }

    private void bingDetailTableCell() {
        this.gssgIdDetail.setCellValueFactory((Callback)new PropertyValueFactory(this.gssgIdDetail.getId()));
        this.gssgBrIdDetail.setCellValueFactory((Callback)new PropertyValueFactory(this.gssgBrIdDetail.getId()));
        this.gssgBrNameDetail.setCellValueFactory((Callback)new PropertyValueFactory(this.gssgBrNameDetail.getId()));
    }

    public void initColumCheckBox() {
        this.sortInfo.getSelectionModel().selectedItemProperty().addListener((ChangeListener)new ChangeListener<GetShopSortOutData>(){

            public void changed(ObservableValue<? extends GetShopSortOutData> observable, GetShopSortOutData oldValue, GetShopSortOutData newValue) {
                if (CollUtil.isEmpty((Collection)ShopSortSettingController.this.sortObservableTableList)) {
                    return;
                }
                for (int i = 0; i < ShopSortSettingController.this.sortObservableTableList.size(); ++i) {
                    if (i == newValue.getIndexSort() - 1) {
                        ((GetShopSortOutData)ShopSortSettingController.this.sortObservableTableList.get(i)).getCheckBoxSort().setSelectStatus(true);
                        continue;
                    }
                    ((GetShopSortOutData)ShopSortSettingController.this.sortObservableTableList.get(i)).getCheckBoxSort().setSelectStatus(false);
                }
                ShopSortSettingController.this.showDetail(newValue.getIndexSort() - 1);
            }
        });
    }

    public void initCheckBoxSort() {
        this.checkBoxSort.setCellFactory(col -> {
            TableCell<GetShopSortOutData, CheckBox> cell = new TableCell<GetShopSortOutData, CheckBox>(){

                protected void updateItem(CheckBox item, boolean empty) {
                    super.updateItem(item, empty);
                    this.setGraphic((Node)item);
                    if (item != null) {
                        item.setOnMouseClicked(col -> {
                            if (CollectionUtils.isEmpty((Collection)ShopSortSettingController.this.sortObservableTableList)) {
                                return;
                            }
                            int index = this.getIndex();
                            for (int i = 0; i < ShopSortSettingController.this.sortObservableTableList.size(); ++i) {
                                if (i == index) continue;
                                ((GetShopSortOutData)ShopSortSettingController.this.sortObservableTableList.get(i)).getCheckBoxSort().setSelectStatus(false);
                            }
                            ShopSortSettingController.this.showDetail(index);
                        });
                    }
                }
            };
            return cell;
        });
    }

    public void showDetail(int index) {
        if (((GetShopSortOutData)this.sortObservableTableList.get(index)).getCheckBoxSort().isSelected().booleanValue()) {
            this.selectShopSort = (GetShopSortOutData)this.sortObservableTableList.get(index);
            GetShopInData inData = new GetShopInData();
            inData.setClientId(((GetUserOutData)CacheUtil.get("logInUser")).getClient());
            inData.setGssgId(((GetShopSortOutData)this.sortObservableTableList.get(index)).getGssgIdSort());
            List<GetShopDetailOutData> dataList = new ArrayList();
            HttpJson httpJson = ShopSortSettingUtil.queryDetail(CommonUtil.convertToMap(inData));
            if (httpJson.isSuccess()) {
                dataList = JSON.parseArray((String)httpJson.getMsg(), GetShopDetailOutData.class);
            } else {
                Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", httpJson.getMsg());
                alert.showAndWait();
            }
            this.initDetailTableView(dataList);
        } else {
            this.detailObservableTableList.clear();
            this.selectShopSort = null;
        }
        this.changeToText(this.gssgBrIdDetail);
    }

    @FXML
    void addAction() {
        this.addShopSortController.titleTemp = "\u65b0\u589e\u95e8\u5e97\u5206\u7c7b";
        this.addShopSortController.type = true;
        this.addShopSortController.init();
        GysApplication.showView(AddShopSortView.class, (Modality)Modality.APPLICATION_MODAL);
    }

    public boolean editSave() {
        if (!this.editSaveCheck()) {
            return false;
        }
        ArrayList<GetShopDetailOutData> inData = new ArrayList<GetShopDetailOutData>();
        for (int i = 0; i < this.detailObservableTableList.size(); ++i) {
            GetShopDetailOutData temp = (GetShopDetailOutData)this.detailObservableTableList.get(i);
            if (temp.getGssgBrIdDetail().equals(temp.getGssgBrIdSourceDetail())) continue;
            inData.add(temp);
        }
        if (ObjectUtil.isEmpty(inData)) {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", "\u8bf7\u4fee\u6539");
            alert.showAndWait();
            return false;
        }
        HashMap<String, Object> param = new HashMap<String, Object>();
        param.put("shopDetailOutData", inData);
        HttpJson httpJson = ShopSortSettingUtil.update(param);
        if (!httpJson.isSuccess()) {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", httpJson.getMsg());
            alert.showAndWait();
            return false;
        }
        this.detailInfo.setEditable(false);
        this.changeToText(this.gssgBrIdDetail);
        return true;
    }

    public boolean editSaveCheck() {
        List<Integer> indexList = this.getSelectIndex();
        if (ObjectUtil.isEmpty(indexList)) {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", "\u8bf7\u9009\u62e9\u8bb0\u5f55");
            alert.showAndWait();
            return false;
        }
        return true;
    }

    @FXML
    void sureAction(ActionEvent event) {
        this.initSortTableView();
    }

    @FXML
    void exportFileAction(ActionEvent event) {
        CommonUtil.exportModelFile("\u95e8\u5e97\u5206\u7c7b\u5bfc\u5165\u6a21\u677f", "/modelFile/shopSortModelFile.xls");
    }

    @FXML
    void importFileAction(ActionEvent event) throws Exception {
        File file = CommonUtil.fileChooser();
        if (ObjectUtil.isEmpty(file)) {
            return;
        }
        List<importShopExcelInData> importExcelInData = CommonUtil.importExcel(file, 0, importShopExcelInData.class);
        if (ObjectUtil.isEmpty(importExcelInData)) {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", "\u6ca1\u6709\u6709\u6548\u6570\u636e");
            alert.showAndWait();
            return;
        }
        ArrayList inDataList = new ArrayList();
        GetUserOutData user = this.getLoginUser();
        String account = user.getAccount();
        importExcelInData.forEach(item -> {
            GetShopInData inData = new GetShopInData();
            BeanUtils.copyProperties(item, inData);
            inData.setGssgUpdateEmp(account);
            inData.setClientId(((GetUserOutData)CacheUtil.get("logInUser")).getClient());
            inDataList.add(inData);
        });
        HashMap<String, Object> param = new HashMap<String, Object>();
        param.put("shopInData", inDataList);
        HttpJson httpJson = ShopSortSettingUtil.addAll(param);
        boolean result = CommonUtil.handleHttpResOnlyAlert(httpJson, "\u4fdd\u5b58\u6210\u529f");
        if (result) {
            this.initSortTableView();
        }
    }

    public List<Integer> getSelectIndex() {
        ArrayList<Integer> ids = new ArrayList<Integer>();
        if (!CollectionUtils.isEmpty(this.sortObservableTableList)) {
            for (GetShopSortOutData i : this.sortObservableTableList) {
                if (!i.getCheckBoxSort().isSelected().booleanValue()) continue;
                ids.add(i.getIndexSort());
            }
        }
        return ids;
    }

    public void delete() {
        List<Integer> indexList = this.getSelectIndex();
        if (ObjectUtil.isEmpty(indexList)) {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", "\u8bf7\u9009\u62e9\u8bb0\u5f55");
            alert.showAndWait();
            return;
        }
        ArrayList inData = new ArrayList();
        indexList.forEach(item -> {
            GetShopSortOutData data = (GetShopSortOutData)this.sortObservableTableList.get(item - 1);
            GetShopInData inDataParam = new GetShopInData();
            inDataParam.setClientId(((GetUserOutData)CacheUtil.get("logInUser")).getClient());
            inDataParam.setGssgId(data.getGssgIdSort());
            inDataParam.setGssgName(data.getGssgNameSort());
            inData.add(inDataParam);
        });
        HashMap<String, Object> param = new HashMap<String, Object>();
        param.put("shopInData", inData);
        HttpJson httpJson = ShopSortSettingUtil.delete(param);
        CommonUtil.handleHttpResOnlyAlert(httpJson, "\u5220\u9664\u6210\u529f");
        this.initSortTableView();
    }

    @FXML
    void editeAction(ActionEvent event) {
        List<Integer> indexList = this.getSelectIndex();
        if (ObjectUtil.isEmpty(indexList)) {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", "\u8bf7\u9009\u62e9\u8bb0\u5f55");
            alert.showAndWait();
            return;
        }
        this.addShopSortController.titleTemp = "\u4fee\u6539\u95e8\u5e97\u5206\u7c7b";
        this.addShopSortController.type = false;
        this.addShopSortController.init();
        GysApplication.showView(AddShopSortView.class, (Modality)Modality.APPLICATION_MODAL);
    }

    private void changeToText(TableColumn<GetShopDetailOutData, String> column) {
        column.setCellFactory(tc -> {
            TableCell<GetShopDetailOutData, String> cell = new TableCell<GetShopDetailOutData, String>(){

                protected void updateItem(String chuzhi, boolean empty) {
                    super.updateItem(chuzhi, empty);
                    if (empty) {
                        this.setGraphic(null);
                    } else {
                        Text text = new Text(chuzhi);
                        this.setGraphic((Node)text);
                    }
                }
            };
            return cell;
        });
    }

    public void searchTextFieldEdit(final TableColumn<GetShopDetailOutData, String> column) {
        ArrayList<GetBcEditStoreData> editStoreData = new ArrayList();
        this.outData.forEach(item -> {
            GetBcEditStoreData tem = new GetBcEditStoreData();
            tem.setGssgBrIdDetail(item.getStoCode());
            tem.setGssgBrNameDetail(item.getStoName());
            editStoreData.add(tem);
        });
        final HashMap otherMap = new HashMap();
        final ArrayList options = new ArrayList();
        editStoreData.forEach(item -> {
            options.add(item.getGssgBrIdDetail());
            otherMap.put(item.getGssgBrIdDetail(), item);
        });
        column.setCellFactory(tc -> {
            TableCell<GetShopDetailOutData, String> cell = new TableCell<GetShopDetailOutData, String>(){

                protected void updateItem(String chuzhi, boolean empty) {
                    super.updateItem(chuzhi, empty);
                    if (empty) {
                        this.setGraphic(null);
                    } else {
                        GetShopDetailOutData data = (GetShopDetailOutData)ShopSortSettingController.this.detailObservableTableList.get(this.getIndex());
                        String defaultValue = data.getGssgBrIdDetail();
                        ArrayList<String> otherCloum = new ArrayList<String>();
                        otherCloum.add(ShopSortSettingController.this.gssgBrNameDetail.getId());
                        SearchTextField searchTextField = new SearchTextField(data, column.getId(), options, defaultValue, otherMap, otherCloum, ShopSortSettingController.this.detailInfo);
                        this.setGraphic((Node)searchTextField);
                    }
                }
            };
            return cell;
        });
    }

    @FXML
    private void reset() {
        this.gssgNameParam.clear();
        this.gssgBrNameParam.clear();
    }

    public ScrollPane getScrollPane() {
        return this.scrollPane;
    }

    public VBox getVBox() {
        return this.vBox;
    }

    public TableColumn<GetShopSortOutData, String> getGssgNameSort() {
        return this.gssgNameSort;
    }

    public TableView<GetShopSortOutData> getSortInfo() {
        return this.sortInfo;
    }

    public TableView<GetShopDetailOutData> getDetailInfo() {
        return this.detailInfo;
    }

    public TableColumn<GetShopSortOutData, String> getGssgUpdateEmp() {
        return this.gssgUpdateEmp;
    }

    public TableColumn<GetShopDetailOutData, String> getIndexDetail() {
        return this.indexDetail;
    }

    public TextField getGssgNameParam() {
        return this.gssgNameParam;
    }

    public TableColumn<GetShopSortOutData, String> getIndexSort() {
        return this.indexSort;
    }

    public Button getExportFileBtn() {
        return this.exportFileBtn;
    }

    public Button getAddBtn() {
        return this.addBtn;
    }

    public Button getEditeBtn() {
        return this.editeBtn;
    }

    public Button getSureBtn() {
        return this.sureBtn;
    }

    public TableColumn<GetShopSortOutData, CheckBox> getCheckBoxSort() {
        return this.checkBoxSort;
    }

    public Button getImportFileBtn() {
        return this.importFileBtn;
    }

    public TableColumn<GetShopSortOutData, String> getGssgIdSort() {
        return this.gssgIdSort;
    }

    public TextField getGssgBrNameParam() {
        return this.gssgBrNameParam;
    }

    public TableColumn<GetShopDetailOutData, String> getGssgBrIdDetail() {
        return this.gssgBrIdDetail;
    }

    public TableColumn<GetShopDetailOutData, String> getGssgIdDetail() {
        return this.gssgIdDetail;
    }

    public TableColumn<GetShopDetailOutData, String> getGssgBrNameDetail() {
        return this.gssgBrNameDetail;
    }

    public IndexController getIndexController() {
        return this.indexController;
    }

    public AddShopSortController getAddShopSortController() {
        return this.addShopSortController;
    }

    public ObservableList<GetShopSortOutData> getSortObservableTableList() {
        return this.sortObservableTableList;
    }

    public ObservableList<GetShopDetailOutData> getDetailObservableTableList() {
        return this.detailObservableTableList;
    }

    public List<GetLoginStoreOutData> getOutData() {
        return this.outData;
    }

    public Map<String, Object> getOtherMap() {
        return this.otherMap;
    }

    public List<String> getWords() {
        return this.words;
    }

    public GetShopSortOutData getSelectShopSort() {
        return this.selectShopSort;
    }

    public void setScrollPane(ScrollPane scrollPane) {
        this.scrollPane = scrollPane;
    }

    public void setVBox(VBox vBox) {
        this.vBox = vBox;
    }

    public void setGssgNameSort(TableColumn<GetShopSortOutData, String> gssgNameSort) {
        this.gssgNameSort = gssgNameSort;
    }

    public void setSortInfo(TableView<GetShopSortOutData> sortInfo) {
        this.sortInfo = sortInfo;
    }

    public void setDetailInfo(TableView<GetShopDetailOutData> detailInfo) {
        this.detailInfo = detailInfo;
    }

    public void setGssgUpdateEmp(TableColumn<GetShopSortOutData, String> gssgUpdateEmp) {
        this.gssgUpdateEmp = gssgUpdateEmp;
    }

    public void setIndexDetail(TableColumn<GetShopDetailOutData, String> indexDetail) {
        this.indexDetail = indexDetail;
    }

    public void setGssgNameParam(TextField gssgNameParam) {
        this.gssgNameParam = gssgNameParam;
    }

    public void setIndexSort(TableColumn<GetShopSortOutData, String> indexSort) {
        this.indexSort = indexSort;
    }

    public void setExportFileBtn(Button exportFileBtn) {
        this.exportFileBtn = exportFileBtn;
    }

    public void setAddBtn(Button addBtn) {
        this.addBtn = addBtn;
    }

    public void setEditeBtn(Button editeBtn) {
        this.editeBtn = editeBtn;
    }

    public void setSureBtn(Button sureBtn) {
        this.sureBtn = sureBtn;
    }

    public void setCheckBoxSort(TableColumn<GetShopSortOutData, CheckBox> checkBoxSort) {
        this.checkBoxSort = checkBoxSort;
    }

    public void setImportFileBtn(Button importFileBtn) {
        this.importFileBtn = importFileBtn;
    }

    public void setGssgIdSort(TableColumn<GetShopSortOutData, String> gssgIdSort) {
        this.gssgIdSort = gssgIdSort;
    }

    public void setGssgBrNameParam(TextField gssgBrNameParam) {
        this.gssgBrNameParam = gssgBrNameParam;
    }

    public void setGssgBrIdDetail(TableColumn<GetShopDetailOutData, String> gssgBrIdDetail) {
        this.gssgBrIdDetail = gssgBrIdDetail;
    }

    public void setGssgIdDetail(TableColumn<GetShopDetailOutData, String> gssgIdDetail) {
        this.gssgIdDetail = gssgIdDetail;
    }

    public void setGssgBrNameDetail(TableColumn<GetShopDetailOutData, String> gssgBrNameDetail) {
        this.gssgBrNameDetail = gssgBrNameDetail;
    }

    public void setIndexController(IndexController indexController) {
        this.indexController = indexController;
    }

    public void setAddShopSortController(AddShopSortController addShopSortController) {
        this.addShopSortController = addShopSortController;
    }

    public void setSortObservableTableList(ObservableList<GetShopSortOutData> sortObservableTableList) {
        this.sortObservableTableList = sortObservableTableList;
    }

    public void setDetailObservableTableList(ObservableList<GetShopDetailOutData> detailObservableTableList) {
        this.detailObservableTableList = detailObservableTableList;
    }

    public void setOutData(List<GetLoginStoreOutData> outData) {
        this.outData = outData;
    }

    public void setOtherMap(Map<String, Object> otherMap) {
        this.otherMap = otherMap;
    }

    public void setWords(List<String> words) {
        this.words = words;
    }

    public void setSelectShopSort(GetShopSortOutData selectShopSort) {
        this.selectShopSort = selectShopSort;
    }

    public boolean equals(Object o) {
        if (o == this) {
            return true;
        }
        if (!(o instanceof ShopSortSettingController)) {
            return false;
        }
        ShopSortSettingController other = (ShopSortSettingController)o;
        if (!other.canEqual(this)) {
            return false;
        }
        ScrollPane this$scrollPane = this.getScrollPane();
        ScrollPane other$scrollPane = other.getScrollPane();
        if (this$scrollPane == null ? other$scrollPane != null : !this$scrollPane.equals(other$scrollPane)) {
            return false;
        }
        VBox this$vBox = this.getVBox();
        VBox other$vBox = other.getVBox();
        if (this$vBox == null ? other$vBox != null : !this$vBox.equals(other$vBox)) {
            return false;
        }
        TableColumn<GetShopSortOutData, String> this$gssgNameSort = this.getGssgNameSort();
        TableColumn<GetShopSortOutData, String> other$gssgNameSort = other.getGssgNameSort();
        if (this$gssgNameSort == null ? other$gssgNameSort != null : !this$gssgNameSort.equals(other$gssgNameSort)) {
            return false;
        }
        TableView<GetShopSortOutData> this$sortInfo = this.getSortInfo();
        TableView<GetShopSortOutData> other$sortInfo = other.getSortInfo();
        if (this$sortInfo == null ? other$sortInfo != null : !this$sortInfo.equals(other$sortInfo)) {
            return false;
        }
        TableView<GetShopDetailOutData> this$detailInfo = this.getDetailInfo();
        TableView<GetShopDetailOutData> other$detailInfo = other.getDetailInfo();
        if (this$detailInfo == null ? other$detailInfo != null : !this$detailInfo.equals(other$detailInfo)) {
            return false;
        }
        TableColumn<GetShopSortOutData, String> this$gssgUpdateEmp = this.getGssgUpdateEmp();
        TableColumn<GetShopSortOutData, String> other$gssgUpdateEmp = other.getGssgUpdateEmp();
        if (this$gssgUpdateEmp == null ? other$gssgUpdateEmp != null : !this$gssgUpdateEmp.equals(other$gssgUpdateEmp)) {
            return false;
        }
        TableColumn<GetShopDetailOutData, String> this$indexDetail = this.getIndexDetail();
        TableColumn<GetShopDetailOutData, String> other$indexDetail = other.getIndexDetail();
        if (this$indexDetail == null ? other$indexDetail != null : !this$indexDetail.equals(other$indexDetail)) {
            return false;
        }
        TextField this$gssgNameParam = this.getGssgNameParam();
        TextField other$gssgNameParam = other.getGssgNameParam();
        if (this$gssgNameParam == null ? other$gssgNameParam != null : !this$gssgNameParam.equals(other$gssgNameParam)) {
            return false;
        }
        TableColumn<GetShopSortOutData, String> this$indexSort = this.getIndexSort();
        TableColumn<GetShopSortOutData, String> other$indexSort = other.getIndexSort();
        if (this$indexSort == null ? other$indexSort != null : !this$indexSort.equals(other$indexSort)) {
            return false;
        }
        Button this$exportFileBtn = this.getExportFileBtn();
        Button other$exportFileBtn = other.getExportFileBtn();
        if (this$exportFileBtn == null ? other$exportFileBtn != null : !this$exportFileBtn.equals(other$exportFileBtn)) {
            return false;
        }
        Button this$addBtn = this.getAddBtn();
        Button other$addBtn = other.getAddBtn();
        if (this$addBtn == null ? other$addBtn != null : !this$addBtn.equals(other$addBtn)) {
            return false;
        }
        Button this$editeBtn = this.getEditeBtn();
        Button other$editeBtn = other.getEditeBtn();
        if (this$editeBtn == null ? other$editeBtn != null : !this$editeBtn.equals(other$editeBtn)) {
            return false;
        }
        Button this$sureBtn = this.getSureBtn();
        Button other$sureBtn = other.getSureBtn();
        if (this$sureBtn == null ? other$sureBtn != null : !this$sureBtn.equals(other$sureBtn)) {
            return false;
        }
        TableColumn<GetShopSortOutData, CheckBox> this$checkBoxSort = this.getCheckBoxSort();
        TableColumn<GetShopSortOutData, CheckBox> other$checkBoxSort = other.getCheckBoxSort();
        if (this$checkBoxSort == null ? other$checkBoxSort != null : !this$checkBoxSort.equals(other$checkBoxSort)) {
            return false;
        }
        Button this$importFileBtn = this.getImportFileBtn();
        Button other$importFileBtn = other.getImportFileBtn();
        if (this$importFileBtn == null ? other$importFileBtn != null : !this$importFileBtn.equals(other$importFileBtn)) {
            return false;
        }
        TableColumn<GetShopSortOutData, String> this$gssgIdSort = this.getGssgIdSort();
        TableColumn<GetShopSortOutData, String> other$gssgIdSort = other.getGssgIdSort();
        if (this$gssgIdSort == null ? other$gssgIdSort != null : !this$gssgIdSort.equals(other$gssgIdSort)) {
            return false;
        }
        TextField this$gssgBrNameParam = this.getGssgBrNameParam();
        TextField other$gssgBrNameParam = other.getGssgBrNameParam();
        if (this$gssgBrNameParam == null ? other$gssgBrNameParam != null : !this$gssgBrNameParam.equals(other$gssgBrNameParam)) {
            return false;
        }
        TableColumn<GetShopDetailOutData, String> this$gssgBrIdDetail = this.getGssgBrIdDetail();
        TableColumn<GetShopDetailOutData, String> other$gssgBrIdDetail = other.getGssgBrIdDetail();
        if (this$gssgBrIdDetail == null ? other$gssgBrIdDetail != null : !this$gssgBrIdDetail.equals(other$gssgBrIdDetail)) {
            return false;
        }
        TableColumn<GetShopDetailOutData, String> this$gssgIdDetail = this.getGssgIdDetail();
        TableColumn<GetShopDetailOutData, String> other$gssgIdDetail = other.getGssgIdDetail();
        if (this$gssgIdDetail == null ? other$gssgIdDetail != null : !this$gssgIdDetail.equals(other$gssgIdDetail)) {
            return false;
        }
        TableColumn<GetShopDetailOutData, String> this$gssgBrNameDetail = this.getGssgBrNameDetail();
        TableColumn<GetShopDetailOutData, String> other$gssgBrNameDetail = other.getGssgBrNameDetail();
        if (this$gssgBrNameDetail == null ? other$gssgBrNameDetail != null : !this$gssgBrNameDetail.equals(other$gssgBrNameDetail)) {
            return false;
        }
        IndexController this$indexController = this.getIndexController();
        IndexController other$indexController = other.getIndexController();
        if (this$indexController == null ? other$indexController != null : !(this$indexController).equals(other$indexController)) {
            return false;
        }
        AddShopSortController this$addShopSortController = this.getAddShopSortController();
        AddShopSortController other$addShopSortController = other.getAddShopSortController();
        if (this$addShopSortController == null ? other$addShopSortController != null : !(this$addShopSortController).equals(other$addShopSortController)) {
            return false;
        }
        ObservableList<GetShopSortOutData> this$sortObservableTableList = this.getSortObservableTableList();
        ObservableList<GetShopSortOutData> other$sortObservableTableList = other.getSortObservableTableList();
        if (this$sortObservableTableList == null ? other$sortObservableTableList != null : !this$sortObservableTableList.equals(other$sortObservableTableList)) {
            return false;
        }
        ObservableList<GetShopDetailOutData> this$detailObservableTableList = this.getDetailObservableTableList();
        ObservableList<GetShopDetailOutData> other$detailObservableTableList = other.getDetailObservableTableList();
        if (this$detailObservableTableList == null ? other$detailObservableTableList != null : !this$detailObservableTableList.equals(other$detailObservableTableList)) {
            return false;
        }
        List<GetLoginStoreOutData> this$outData = this.getOutData();
        List<GetLoginStoreOutData> other$outData = other.getOutData();
        if (this$outData == null ? other$outData != null : !(this$outData).equals(other$outData)) {
            return false;
        }
        Map<String, Object> this$otherMap = this.getOtherMap();
        Map<String, Object> other$otherMap = other.getOtherMap();
        if (this$otherMap == null ? other$otherMap != null : !(this$otherMap).equals(other$otherMap)) {
            return false;
        }
        List<String> this$words = this.getWords();
        List<String> other$words = other.getWords();
        if (this$words == null ? other$words != null : !(this$words).equals(other$words)) {
            return false;
        }
        GetShopSortOutData this$selectShopSort = this.getSelectShopSort();
        GetShopSortOutData other$selectShopSort = other.getSelectShopSort();
        return !(this$selectShopSort == null ? other$selectShopSort != null : !(this$selectShopSort).equals(other$selectShopSort));
    }

    protected boolean canEqual(Object other) {
        return other instanceof ShopSortSettingController;
    }

    public int hashCode() {
        int PRIME = 59;
        int result = 1;
        ScrollPane $scrollPane = this.getScrollPane();
        result = result * 59 + ($scrollPane == null ? 43 : $scrollPane.hashCode());
        VBox $vBox = this.getVBox();
        result = result * 59 + ($vBox == null ? 43 : $vBox.hashCode());
        TableColumn<GetShopSortOutData, String> $gssgNameSort = this.getGssgNameSort();
        result = result * 59 + ($gssgNameSort == null ? 43 : $gssgNameSort.hashCode());
        TableView<GetShopSortOutData> $sortInfo = this.getSortInfo();
        result = result * 59 + ($sortInfo == null ? 43 : $sortInfo.hashCode());
        TableView<GetShopDetailOutData> $detailInfo = this.getDetailInfo();
        result = result * 59 + ($detailInfo == null ? 43 : $detailInfo.hashCode());
        TableColumn<GetShopSortOutData, String> $gssgUpdateEmp = this.getGssgUpdateEmp();
        result = result * 59 + ($gssgUpdateEmp == null ? 43 : $gssgUpdateEmp.hashCode());
        TableColumn<GetShopDetailOutData, String> $indexDetail = this.getIndexDetail();
        result = result * 59 + ($indexDetail == null ? 43 : $indexDetail.hashCode());
        TextField $gssgNameParam = this.getGssgNameParam();
        result = result * 59 + ($gssgNameParam == null ? 43 : $gssgNameParam.hashCode());
        TableColumn<GetShopSortOutData, String> $indexSort = this.getIndexSort();
        result = result * 59 + ($indexSort == null ? 43 : $indexSort.hashCode());
        Button $exportFileBtn = this.getExportFileBtn();
        result = result * 59 + ($exportFileBtn == null ? 43 : $exportFileBtn.hashCode());
        Button $addBtn = this.getAddBtn();
        result = result * 59 + ($addBtn == null ? 43 : $addBtn.hashCode());
        Button $editeBtn = this.getEditeBtn();
        result = result * 59 + ($editeBtn == null ? 43 : $editeBtn.hashCode());
        Button $sureBtn = this.getSureBtn();
        result = result * 59 + ($sureBtn == null ? 43 : $sureBtn.hashCode());
        TableColumn<GetShopSortOutData, CheckBox> $checkBoxSort = this.getCheckBoxSort();
        result = result * 59 + ($checkBoxSort == null ? 43 : $checkBoxSort.hashCode());
        Button $importFileBtn = this.getImportFileBtn();
        result = result * 59 + ($importFileBtn == null ? 43 : $importFileBtn.hashCode());
        TableColumn<GetShopSortOutData, String> $gssgIdSort = this.getGssgIdSort();
        result = result * 59 + ($gssgIdSort == null ? 43 : $gssgIdSort.hashCode());
        TextField $gssgBrNameParam = this.getGssgBrNameParam();
        result = result * 59 + ($gssgBrNameParam == null ? 43 : $gssgBrNameParam.hashCode());
        TableColumn<GetShopDetailOutData, String> $gssgBrIdDetail = this.getGssgBrIdDetail();
        result = result * 59 + ($gssgBrIdDetail == null ? 43 : $gssgBrIdDetail.hashCode());
        TableColumn<GetShopDetailOutData, String> $gssgIdDetail = this.getGssgIdDetail();
        result = result * 59 + ($gssgIdDetail == null ? 43 : $gssgIdDetail.hashCode());
        TableColumn<GetShopDetailOutData, String> $gssgBrNameDetail = this.getGssgBrNameDetail();
        result = result * 59 + ($gssgBrNameDetail == null ? 43 : $gssgBrNameDetail.hashCode());
        IndexController $indexController = this.getIndexController();
        result = result * 59 + ($indexController == null ? 43 : ($indexController).hashCode());
        AddShopSortController $addShopSortController = this.getAddShopSortController();
        result = result * 59 + ($addShopSortController == null ? 43 : ($addShopSortController).hashCode());
        ObservableList<GetShopSortOutData> $sortObservableTableList = this.getSortObservableTableList();
        result = result * 59 + ($sortObservableTableList == null ? 43 : $sortObservableTableList.hashCode());
        ObservableList<GetShopDetailOutData> $detailObservableTableList = this.getDetailObservableTableList();
        result = result * 59 + ($detailObservableTableList == null ? 43 : $detailObservableTableList.hashCode());
        List<GetLoginStoreOutData> $outData = this.getOutData();
        result = result * 59 + ($outData == null ? 43 : ($outData).hashCode());
        Map<String, Object> $otherMap = this.getOtherMap();
        result = result * 59 + ($otherMap == null ? 43 : ($otherMap).hashCode());
        List<String> $words = this.getWords();
        result = result * 59 + ($words == null ? 43 : ($words).hashCode());
        GetShopSortOutData $selectShopSort = this.getSelectShopSort();
        result = result * 59 + ($selectShopSort == null ? 43 : ($selectShopSort).hashCode());
        return result;
    }

    public String toString() {
        return "ShopSortSettingController(scrollPane=" + this.getScrollPane() + ", vBox=" + this.getVBox() + ", gssgNameSort=" + this.getGssgNameSort() + ", sortInfo=" + this.getSortInfo() + ", detailInfo=" + this.getDetailInfo() + ", gssgUpdateEmp=" + this.getGssgUpdateEmp() + ", indexDetail=" + this.getIndexDetail() + ", gssgNameParam=" + this.getGssgNameParam() + ", indexSort=" + this.getIndexSort() + ", exportFileBtn=" + this.getExportFileBtn() + ", addBtn=" + this.getAddBtn() + ", editeBtn=" + this.getEditeBtn() + ", sureBtn=" + this.getSureBtn() + ", checkBoxSort=" + this.getCheckBoxSort() + ", importFileBtn=" + this.getImportFileBtn() + ", gssgIdSort=" + this.getGssgIdSort() + ", gssgBrNameParam=" + this.getGssgBrNameParam() + ", gssgBrIdDetail=" + this.getGssgBrIdDetail() + ", gssgIdDetail=" + this.getGssgIdDetail() + ", gssgBrNameDetail=" + this.getGssgBrNameDetail() + ", indexController=" + this.getIndexController() + ", addShopSortController=" + this.getAddShopSortController() + ", sortObservableTableList=" + this.getSortObservableTableList() + ", detailObservableTableList=" + this.getDetailObservableTableList() + ", outData=" + this.getOutData() + ", otherMap=" + this.getOtherMap() + ", words=" + this.getWords() + ", selectShopSort=" + this.getSelectShopSort() + ")";
    }
}

